package com.kymatrix.mpo.plus.bpm.server.service;

import com.kymatrix.mpo.plus.bpm.server.model.entity.definition.BpmProcessExpressionEntity;
import com.kymatrix.mpo.plus.bpm.server.model.form.expression.PageQueryBpmProcessExpressionPageReq;
import com.kymatrix.mpo.plus.bpm.server.model.form.expression.SaveBpmProcessExpressionReq;
import com.kymatrix.mpo.plus.bpm.server.model.form.expression.UpdateBpmProcessExpressionReq;
import com.kymatrix.mpo.plus.common.business.common.PageResp;
import javax.validation.Valid;

/**
 * BPM 流程表达式 Service 接口
 */
public interface BpmProcessExpressionService {

    /**
     * 创建流程表达式
     *
     * @return 编号
     */
    String createProcessExpression(@Valid SaveBpmProcessExpressionReq req);

    /**
     * 更新流程表达式
     *
     * @param updateReqVO 更新信息
     */
    void updateProcessExpression(@Valid UpdateBpmProcessExpressionReq updateReqVO);

    /**
     * 删除流程表达式
     *
     * @param id 编号
     */
    void deleteProcessExpression(String id);

    /**
     * 获得流程表达式
     *
     * @param id 编号
     * @return 流程表达式
     */
    BpmProcessExpressionEntity getProcessExpression(String id);

    /**
     * 获得流程表达式分页
     *
     * @return 流程表达式分页
     */
    PageResp<BpmProcessExpressionEntity> getProcessExpressionPage(PageQueryBpmProcessExpressionPageReq req);

}
